package com.gupaoedu.pattern.observer.event;


/**
 * 2019/9/28
 * created by chenpp
 * 这里的监听者是监听指定事件，然后回调方法
 * 而不是像观察者模式 发布-订阅的方式
 */
public class MouseEventTest {
    public static void main(String[] args) throws Exception {
        Mouse mouse = new Mouse();

        MouseEventCallback callback = new MouseEventCallback();
        //这里的callback就是target,因为回调对象含有回调的方法，所以后面才可以通过反射调用回调方法
        mouse.addListener(EventTypeEnum.CLICK.getName(),callback);
        mouse.addListener(EventTypeEnum.DOUBLE_CLICK.getName(),callback);
        mouse.click();
        mouse.doubleClick();
    }
}
